package backHelper

import (
	"fmt"
	"lhgbackDBTool/utils"
	"os/exec"
	"time"
)

/**
windows平台下
通过goroutine，并发执行
*/
func BackInWindows(DbPassWord string, DBName string) {

	//判断目录是否已经创建了
	IsOk, _ := utils.PathExists(utils.SaveDir)
	if !IsOk {
		retMkdir := exec.Command("cmd.exe", "/C", "mkdir", utils.SaveDir)
		retMkdirBytes, err := retMkdir.Output()
		if err != nil {
			fmt.Println("创建目录 出现错误", string(retMkdirBytes), err.Error())
		}
	}
	//mysqldump -h主机名  -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sql

	backShell := fmt.Sprintf("mysqldump -h%s -P%s -u%s -p%s  %s > %s%s.sql",
		utils.DbHost, utils.DbPort, utils.DbUser, DbPassWord, DBName, utils.SaveDir+"/", DBName+"_"+time.Now().UTC().Format("2006-01-02_15_04_05"))

	fmt.Println("备份命令正在执行...")

	//执行备份命令
	retFrp := exec.Command("cmd.exe", "/C", backShell)
	retFrpBytes, err := retFrp.Output()

	if err != nil {
		fmt.Println("出现错误", string(retFrpBytes), err.Error())
	}

	fmt.Println("数据库 ", DBName, " 备份完毕")

}

/**
linux平台下
通过goroutine，并发执行
*/
func BackInLinux() {
	//拼接备份命令
	//backShell := fmt.Sprintf("mysqldump --column-statistics=0 --host %s --port %s -u%s -p%s --databases %s > %s%s.sql",
	//	utils.DbHost, utils.DbPort, utils.DbUser, utils.DbPassWord, utils.DbName, utils.SaveDir, utils.DbName+"_"+time.Now().UTC().Format("2006-01-02_15:04:05"))

}
